import java.sql.*;
import java.io.*;

public
class DatabaseTest
{
	public static DatabaseTest databaseTest;
	protected Connection connection = null;
	public static PrintWriter outp = null;
	
	public DatabaseTest(String query)
	{
		try{
			connect("test");
			doQuery(query);
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
		}
		catch(IOException e){
			outp.println("Bd IO: " + e);
		}
		finally{
			close();
		}
	}
	public static void setOutput()
	{
		try{
		outp = new PrintWriter(new OutputStreamWriter(System.out, "Cp852"), true);
		}
		catch(UnsupportedEncodingException e){
			System.out.println("Nie mona ustawi strony kodowej Cp852.");
			outp = new PrintWriter(new OutputStreamWriter(System.out), true);
		}
	}
	public static void main(String args[])
	{
		setOutput();
		if(args.length < 1){
			outp.println("Wywoanie programu: DatabaseTest \"zapytanie SQL\"");
			return;
		}
		databaseTest = new DatabaseTest(args[0]);
	}
	public void connect(String databaseName)
	throws SQLException
	{
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch(ClassNotFoundException e){
			outp.println("Bd przy adowaniu sterownika bazy: " + e);
			System.exit(-1);
		}
		connection = DriverManager.getConnection("jdbc:odbc:" + databaseName);
		outp.println("\nPoczenie nawizane!\n");
	}
	public void close()
	{
		try{
			connection.close();
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
			System.exit(-1);
		}
		outp.println("\nPoczenie zamknite!\n");
	}
	public void doQuery(String query)
	throws SQLException, IOException
	{	
		Statement statement = connection.createStatement();
		boolean update = statement.execute(query);
		if (!update){
			int count = statement.getUpdateCount();
			outp.println("Ilo zmodyfikowanych rekordw: " + count + "\n");
		}
		else{
			ResultSet rs = statement.getResultSet();
			String imie;
			String nazwisko;
			String stanowisko;
			String rok_zatrudnienia;
			String zarobki;

			while(rs.next()){
				imie = "";
				nazwisko = "";
				stanowisko = "";
				rok_zatrudnienia = "";
				zarobki = "";
				try{
					imie = rs.getString("IMIE");
					nazwisko = rs.getString("NAZWISKO");
					stanowisko = rs.getString("STANOWISKO");
		rok_zatrudnienia = Integer.toString (rs.getInt("ROK_ZATRUDNIENIA"));
					zarobki = rs.getString("ZAROBKI");
				}
				catch(SQLException e){
				}
				outp.println(
					imie + " " + 
					nazwisko + " " + 
					stanowisko + " " +
					rok_zatrudnienia + " " +
					zarobki
				);
			}
		}
		statement.close();
	}
}
